﻿using System;
using System.Collections.Generic;
using KKSG;
using UnityEngine;
using XUtliPoolLib;

namespace XMainClient
{
	// Token: 0x02000E9C RID: 3740
	public class XQualitySetting
	{
		// Token: 0x0600C771 RID: 51057 RVA: 0x002C8000 File Offset: 0x002C6200
		public static void Init()
		{
			XQualitySetting._InvisiblityLayerOffset = 1 << LayerMask.NameToLayer("InVisiblity");
			XQualitySetting._QualityHighLayerOffset = 1 << LayerMask.NameToLayer("QualityHigh");
			XQualitySetting._QualityNormalLayerOffset = 1 << LayerMask.NameToLayer("QualityNormal");
			XQualitySetting._UILayerOffset = 1 << LayerMask.NameToLayer("UI");
			XQualitySetting._DefaultLayerOffset = 1 << LayerMask.NameToLayer("Default");
			XQualitySetting.XSetting xsetting = XQualitySetting._settings[0];
			xsetting._bloom = false;
			xsetting._CameraHall = 130f;
			xsetting._CameraWorld = 80f;
			xsetting.bw = (BlendWeights)1;
			xsetting._CullMask = ~(XQualitySetting._QualityHighLayerOffset | XQualitySetting._QualityNormalLayerOffset);
			xsetting._EnableFog = false;
			xsetting._ShaderLod = 100;
			xsetting._MaxParticelCount = 3;
			XQualitySetting.XSetting xsetting2 = XQualitySetting._settings[1];
			xsetting2._bloom = false;
			xsetting2._CameraHall = 140f;
			xsetting2._CameraWorld = 80f;
			xsetting2.bw = (BlendWeights)2;
			xsetting2._CullMask = (~XQualitySetting._QualityHighLayerOffset | XQualitySetting._QualityNormalLayerOffset);
			xsetting2._EnableFog = true;
			xsetting2._ShaderLod = 200;
			xsetting2._MaxParticelCount = 6;
			XQualitySetting.XSetting xsetting3 = XQualitySetting._settings[2];
			xsetting3._bloom = false;
			xsetting3._CameraHall = 150f;
			xsetting3._CameraWorld = 90f;
			xsetting3.bw = (BlendWeights)2;
			xsetting3._CullMask = (XQualitySetting._QualityHighLayerOffset | XQualitySetting._QualityNormalLayerOffset);
			xsetting3._EnableFog = true;
			xsetting3._ShaderLod = 600;
			xsetting3._MaxParticelCount = 50;
			XQualitySetting.XSetting xsetting4 = XQualitySetting._settings[3];
			xsetting4._bloom = true;
			xsetting4._CameraHall = 150f;
			xsetting4._CameraWorld = 90f;
			xsetting4.bw = (BlendWeights)4;
			xsetting4._CullMask = (XQualitySetting._QualityHighLayerOffset | XQualitySetting._QualityNormalLayerOffset);
			xsetting4._EnableFog = true;
			xsetting4._ShaderLod = 600;
			xsetting4._MaxParticelCount = 50;
			XQualitySetting._hallLayerculldistance[LayerMask.NameToLayer("Npc")] = 35f;
			XQualitySetting._hallLayerculldistance[LayerMask.NameToLayer("Resources")] = 35f;
			XQualitySetting._hallLayerculldistance[LayerMask.NameToLayer("QualityHigh")] = 80f;
			XQualitySetting._hallLayerculldistance[LayerMask.NameToLayer("QualityNormal")] = 50f;
			XQualitySetting._hallLayerculldistance[LayerMask.NameToLayer("QualityCullDistance")] = 20f;
			XQualitySetting._hallLayerculldistance[LayerMask.NameToLayer("Dummy")] = 25f;
			XQualitySetting._layerculldistance[LayerMask.NameToLayer("Npc")] = 40f;
			XQualitySetting._layerculldistance[LayerMask.NameToLayer("Role")] = 40f;
			XQualitySetting._layerculldistance[LayerMask.NameToLayer("Enemy")] = 40f;
			XQualitySetting._layerculldistance[LayerMask.NameToLayer("BigGuy")] = 60f;
			XQualitySetting._layerculldistance[LayerMask.NameToLayer("QualityHigh")] = 60f;
			XQualitySetting._layerculldistance[LayerMask.NameToLayer("QualityNormal")] = 40f;
			XQualitySetting._layerculldistance[LayerMask.NameToLayer("QualityCullDistance")] = 20f;
		}

		// Token: 0x0600C772 RID: 51058 RVA: 0x002C82DC File Offset: 0x002C64DC
		public static void SetQuality(int level, bool init = false)
		{
			if (level >= 0)
			{
				if (init)
				{
					QualitySettings.SetQualityLevel(2);
					XQualitySetting._IsPcOrSimulator = (level > XQualitySetting.veryHighLevel);
					XQualitySetting._HardwareQualityLevel = level;
					if (XQualitySetting._HardwareQualityLevel == XQualitySetting.lowLevel)
					{
						QualitySettings.pixelLightCount = 0;
						QualitySettings.masterTextureLimit = 1;
						QualitySettings.anisotropicFiltering = 0;
					}
					else
					{
						QualitySettings.pixelLightCount = 1;
						QualitySettings.masterTextureLimit = 0;
						QualitySettings.anisotropicFiltering = (AnisotropicFiltering)1;
					}
					QualitySettings.particleRaycastBudget = 2;
				}
				int num = (level > XQualitySetting.veryHighLevel) ? XQualitySetting.veryHighLevel : level;
				XQualitySetting.XSetting xsetting;
				if (XQualitySetting._QualityLevel != num)
				{
					XQualitySetting._QualityLevel = num;
					xsetting = XQualitySetting._settings[XQualitySetting._QualityLevel];
					QualitySettings.blendWeights = xsetting.bw;
				}
				else
				{
					xsetting = XQualitySetting._settings[XQualitySetting._QualityLevel];
				}
				XQualitySetting._CurrentSetting = xsetting;
			}
		}

		// Token: 0x0600C773 RID: 51059 RVA: 0x002C83C0 File Offset: 0x002C65C0
		public static void InitResolution()
		{
			XQualitySetting.width = Screen.width;
			XQualitySetting.height = Screen.height;
			XOptionsDocument specificDocument = XDocuments.GetSpecificDocument<XOptionsDocument>(XOptionsDocument.uuID);
			if (specificDocument != null)
			{
				int value = specificDocument.GetValue(XOptionsDefine.OD_RESOLUTION);
				XQualitySetting.SetResolution((XQualitySetting.EResolution)value, true);
			}
		}

		// Token: 0x0600C774 RID: 51060 RVA: 0x002C8408 File Offset: 0x002C6608
		public static void SetResolution(XQualitySetting.EResolution resolution, bool force = false)
		{
			if ((XQualitySetting._InHall || force) && (Application.platform == (RuntimePlatform)11 || Application.platform == (RuntimePlatform)8))
			{
				int num = XFastEnumIntEqualityComparer<XQualitySetting.EResolution>.ToInt(resolution);
				if (num == XQualitySetting.heighResolution)
				{
					XQualitySetting.maxResolution = (float)XQualitySetting.height;
					Screen.SetResolution(XQualitySetting.width, XQualitySetting.height, true);
				}
				else
				{
					if (num == XQualitySetting.normalResolution)
					{
						XQualitySetting.maxResolution = 1080f;
					}
					else
					{
						XQualitySetting.maxResolution = 720f;
					}
					float num2 = XQualitySetting.maxResolution / (float)XQualitySetting.height;
					if (num2 > 0.75f)
					{
						num2 = 0.75f;
					}
					if (num2 < 0.7f)
					{
						num2 = 0.7f;
					}
					Screen.SetResolution((int)((float)XQualitySetting.width * num2), (int)((float)XQualitySetting.height * num2), true);
				}
			}
		}

		// Token: 0x0600C775 RID: 51061 RVA: 0x002C84F0 File Offset: 0x002C66F0
		public static int GetDefalutResolution()
		{
			int result;
			if (XQualitySetting.width > 1920)
			{
				result = XQualitySetting.normalResolution;
			}
			else
			{
				result = XQualitySetting.heighResolution;
			}
			return result;
		}

		// Token: 0x0600C776 RID: 51062 RVA: 0x002C8524 File Offset: 0x002C6724
		public static int SetVisibleRoleLevel(int level)
		{
			if (level < 0)
			{
				level = 0;
			}
			else
			{
				if (level > XQualitySetting.veryHighLevel)
				{
					level = XQualitySetting.veryHighLevel;
				}
			}
			XQualitySetting._VisibleRoleCount = level * XQualitySetting.VisibleRoleCountPerLevel + XQualitySetting.VisibleRoleCountPerLevel;
			return XQualitySetting._VisibleRoleCount;
		}

		// Token: 0x0600C777 RID: 51063 RVA: 0x002C8570 File Offset: 0x002C6770
		public static int GetDefalutVisibleRoleLevel()
		{
			int result;
			if (XQualitySetting._HardwareQualityLevel == XQualitySetting.veryHighLevel)
			{
				result = XQualitySetting.veryHighLevel;
			}
			else
			{
				result = XQualitySetting._HardwareQualityLevel + 1;
			}
			return result;
		}

		// Token: 0x0600C778 RID: 51064 RVA: 0x002C85A1 File Offset: 0x002C67A1
		public static void GetDefalutVisibleRoleCount(out int min, out int max)
		{
			min = XQualitySetting.VisibleRoleCountPerLevel;
			max = 4 * XQualitySetting.VisibleRoleCountPerLevel;
		}

		// Token: 0x0600C779 RID: 51065 RVA: 0x002C85B4 File Offset: 0x002C67B4
		public static int GetVisibleRoleCount()
		{
			return XQualitySetting._VisibleRoleCount;
		}

		// Token: 0x0600C77A RID: 51066 RVA: 0x002C85CC File Offset: 0x002C67CC
		public static void PostSetQuality()
		{
			XQualitySetting._flag = 0;
			XQualitySetting.SetQuality(EFun.ECamera, XQualitySetting._QualityLevel >= XQualitySetting.heighLevel);
			XQualitySetting.SetQuality(EFun.ENpcShadow, XQualitySetting._QualityLevel >= XQualitySetting.heighLevel);
			XQualitySetting.SetQuality(EFun.ERoleShadow, XQualitySetting._QualityLevel >= XQualitySetting.normalLevel);
			XQualitySetting.SetQuality(EFun.EEnemyShadow, XQualitySetting._QualityLevel >= XQualitySetting.normalLevel);
			XQualitySetting.SetQuality(EFun.ERealTimeShadow, XQualitySetting._QualityLevel >= XQualitySetting.heighLevel && XQualitySetting._HardwareQualityLevel >= XQualitySetting.veryHighLevel && Application.platform != (RuntimePlatform)11);
			XQualitySetting.SetQuality(EFun.EFxPro, XQualitySetting._QualityLevel == XQualitySetting.veryHighLevel && XQualitySetting._HardwareQualityLevel >= XQualitySetting.veryHighLevel);
			XQualitySetting.SetQuality(EFun.ESceneFade, XQualitySetting._QualityLevel >= XQualitySetting.normalLevel);
			XQualitySetting.SetQuality(EFun.EFadeInOut, XQualitySetting._QualityLevel >= XQualitySetting.normalLevel);
			bool settingEnum = XSingleton<XGlobalConfig>.singleton.GetSettingEnum(ESettingConfig.ELowEffect);
			if (settingEnum)
			{
				XQualitySetting.SetQuality(EFun.ELowEffect, XQualitySetting._QualityLevel == XQualitySetting.lowLevel);
			}
			else
			{
				XQualitySetting.SetQuality(EFun.ELowEffect, false);
			}
			XQualitySetting.SetQuality(EFun.ECommonHigh, XQualitySetting._QualityLevel >= XQualitySetting.heighLevel && XQualitySetting._InHall);
		}

		// Token: 0x0600C77B RID: 51067 RVA: 0x002C8714 File Offset: 0x002C6914
		public static int GetQuality()
		{
			return XQualitySetting._QualityLevel;
		}

		// Token: 0x0600C77C RID: 51068 RVA: 0x002C872C File Offset: 0x002C692C
		public static bool GetQuality(EFun fun)
		{
			return (XQualitySetting._flag & XFastEnumIntEqualityComparer<EFun>.ToInt(fun)) != 0;
		}

		// Token: 0x0600C77D RID: 51069 RVA: 0x002C8750 File Offset: 0x002C6950
		public static void SetQuality(EFun fun, bool add)
		{
			if (add)
			{
				XQualitySetting._flag |= XFastEnumIntEqualityComparer<EFun>.ToInt(fun);
			}
			else
			{
				XQualitySetting._flag &= ~XFastEnumIntEqualityComparer<EFun>.ToInt(fun);
			}
		}

		// Token: 0x0600C77E RID: 51070 RVA: 0x002C878C File Offset: 0x002C698C
		public static XQualitySetting.XSetting GetCurrentQualitySetting()
		{
			return XQualitySetting._settings[XQualitySetting._QualityLevel];
		}

		// Token: 0x0600C77F RID: 51071 RVA: 0x002C87AC File Offset: 0x002C69AC
		public static bool SupportHighEffect()
		{
			return XQualitySetting._HardwareQualityLevel >= XQualitySetting.veryHighLevel && Application.platform != (RuntimePlatform)11;
		}

		// Token: 0x0600C780 RID: 51072 RVA: 0x002C87DC File Offset: 0x002C69DC
		public static int GetDefaultQualityLevel()
		{
			int result;
			if (XQualitySetting._IsPcOrSimulator)
			{
				result = XQualitySetting.veryHighLevel;
			}
			else
			{
				result = ((XQualitySetting._HardwareQualityLevel > XQualitySetting.heighLevel) ? XQualitySetting.heighLevel : XQualitySetting._HardwareQualityLevel);
			}
			return result;
		}

		// Token: 0x0600C781 RID: 51073 RVA: 0x002C8819 File Offset: 0x002C6A19
		public static void EnterScene()
		{
			XQualitySetting._InHall = false;
			XQualitySetting.PostSetQuality();
		}

		// Token: 0x0600C782 RID: 51074 RVA: 0x002C8828 File Offset: 0x002C6A28
		public static void EnterHall()
		{
			XQualitySetting._InHall = true;
			XQualitySetting.PostSetQuality();
		}

		// Token: 0x0600C783 RID: 51075 RVA: 0x002C8837 File Offset: 0x002C6A37
		public static void SwitchScene()
		{
			XQualitySetting._envSet = null;
		}

		// Token: 0x0600C784 RID: 51076 RVA: 0x002C8840 File Offset: 0x002C6A40
		public static void PostSceneLoad()
		{
			Shader.SetGlobalFloat("uirim", 0f);
			XQualitySetting._CastShadow = false;
			XQualitySetting.mainLight = null;
			GameObject gameObject = GameObject.Find("MainLight");
			if (gameObject != null)
			{
				XQualitySetting.mainLight = gameObject.GetComponent<Light>();
				if (XQualitySetting.mainLight != null)
				{
					Color color = XQualitySetting.mainLight.color * XQualitySetting.mainLight.intensity;
					Shader.SetGlobalColor("lightColor", color);
					Vector3 vector = -gameObject.transform.forward.normalized;
					Shader.SetGlobalVector("lightDir", new Vector4(vector.x, vector.y, vector.z, 1f));
					XQualitySetting.mainLight.shadows = 0;
					if (XQualitySetting.GetQuality(EFun.ERealTimeShadow) && !XSingleton<XScene>.singleton.IsMustTransform)
					{
						XQualitySetting._CastShadow = (gameObject.layer == XQualitySetting.TerrainLayer);
					}
					else
					{
						XQualitySetting._CastShadow = false;
					}
				}
			}
			ShadowMapInfo.EnableShadow(XQualitySetting._CastShadow);
		}

		// Token: 0x0600C785 RID: 51077 RVA: 0x002C8964 File Offset: 0x002C6B64
		public static void PostSetting()
		{
			DateTime now = DateTime.Now;
			int num = now.Hour * 3600 + now.Minute * 60 + now.Second;
			if (XQualitySetting._envSet != null)
			{
				SceneTable.RowData sceneData = XSingleton<XScene>.singleton.SceneData;
				if (sceneData != null && sceneData.EnvSet.Count > 0)
				{
					int i = 0;
					int count = sceneData.EnvSet.Count;
					while (i < count)
					{
						if (num >= sceneData.EnvSet[i, 0] && num < sceneData.EnvSet[i, 1])
						{
							XQualitySetting._envSet.EnableSetting(sceneData.EnvSet[i, 2]);
							break;
						}
						i++;
					}
				}
				else
				{
					XQualitySetting._envSet.EnableSetting(0);
				}
			}
			XQualitySetting._WindSpeedFactor = XSingleton<XCommon>.singleton.RandomFloat(0.5f, 2f);
			XQualitySetting.fxPro = null;
			if (XQualitySetting._CurrentSetting != null)
			{
				Camera unityCamera = XSingleton<XScene>.singleton.GameCamera.UnityCamera;
				if (unityCamera != null)
				{
					unityCamera.hdr = false;
					if (XQualitySetting._InHall || XSingleton<XSceneMgr>.singleton.GetSceneType(XSingleton<XScene>.singleton.SceneID) == SceneType.SCENE_CALLBACK)
					{
						unityCamera.farClipPlane = XQualitySetting._CurrentSetting._CameraHall;
						unityCamera.cullingMask &= ~(XQualitySetting._QualityHighLayerOffset | XQualitySetting._QualityNormalLayerOffset);
						unityCamera.cullingMask |= XQualitySetting._CurrentSetting._CullMask;
						unityCamera.cullingMask &= ~XQualitySetting._InvisiblityLayerOffset;
						unityCamera.cullingMask &= ~XQualitySetting._UILayerOffset;
						unityCamera.layerCullDistances = XQualitySetting._hallLayerculldistance;
					}
					else
					{
						if (unityCamera.farClipPlane < 300f || unityCamera.farClipPlane > 600f)
						{
							unityCamera.farClipPlane = XQualitySetting._CurrentSetting._CameraWorld;
						}
						unityCamera.cullingMask &= ~(XQualitySetting._QualityHighLayerOffset | XQualitySetting._QualityNormalLayerOffset);
						unityCamera.cullingMask |= XQualitySetting._CurrentSetting._CullMask;
						unityCamera.layerCullDistances = XQualitySetting._layerculldistance;
						unityCamera.cullingMask &= ~XQualitySetting._InvisiblityLayerOffset;
						unityCamera.cullingMask &= ~XQualitySetting._UILayerOffset;
					}
					if (Application.platform == (RuntimePlatform)8 || XQualitySetting._IsPcOrSimulator)
					{
						XQualitySetting.fxPro = (unityCamera.GetComponent("FxPro") as IFxPro);
						if (XQualitySetting.fxPro != null)
						{
							if (XQualitySetting.GetQuality(EFun.EFxPro) || XSingleton<XScene>.singleton.SceneType == SceneType.SCENE_LOGIN)
							{
								XQualitySetting.fxPro.Enable(true);
							}
							else
							{
								XQualitySetting.fxPro.Enable(false);
							}
						}
					}
					XSingleton<XFxMgr>.singleton.CameraLayerMask = (unityCamera.cullingMask | XQualitySetting._UILayerOffset);
					unityCamera.useOcclusionCulling = false;
				}
				if (XQualitySetting._InHall && !XSingleton<XGame>.singleton.switchScene)
				{
					XQualitySetting.PostSceneLoad();
					XPlayer player = XSingleton<XEntityMgr>.singleton.Player;
					if (player != null)
					{
						XShadowComponent xshadowComponent = player.GetXComponent(XShadowComponent.uuID) as XShadowComponent;
						if (xshadowComponent != null)
						{
							xshadowComponent.ProcessShadow();
						}
					}
					List<XEntity> all = XSingleton<XEntityMgr>.singleton.GetAll();
					for (int j = 0; j < all.Count; j++)
					{
						XEntity xentity = all[j];
						if (xentity.Equipment != null)
						{
							xentity.Equipment.RefreshSuitFx();
							xentity.Equipment.RefreshEquipFx();
							xentity.Equipment.RefreshSecondWeaponFx();
						}
						XShadowComponent xshadowComponent2 = xentity.GetXComponent(XShadowComponent.uuID) as XShadowComponent;
						if (xshadowComponent2 != null)
						{
							xshadowComponent2.ProcessShadow();
						}
					}
				}
				RenderSettings.fog = XQualitySetting._CurrentSetting._EnableFog;
				Shader.globalMaximumLOD = XQualitySetting._CurrentSetting._ShaderLod;
				XFxMgr.MaxParticelCount = XQualitySetting._CurrentSetting._MaxParticelCount;
			}
		}

		// Token: 0x0600C786 RID: 51078 RVA: 0x002C8DCC File Offset: 0x002C6FCC
		public static void SetEnvSet(IEnvSetting envSet)
		{
			XQualitySetting._envSet = envSet;
		}

		// Token: 0x0600C787 RID: 51079 RVA: 0x002C8DD8 File Offset: 0x002C6FD8
		public static void SetDofFade(float fade)
		{
			if (XQualitySetting.fxPro != null)
			{
				XQualitySetting.fxPro.SetDofFade(fade);
			}
		}

		// Token: 0x0600C788 RID: 51080 RVA: 0x002C8E00 File Offset: 0x002C7000
		public static void Update()
		{
			if (XQualitySetting._CurrentSetting != null && XQualitySetting._CurrentSetting._ShaderLod >= 400 && XSingleton<XGame>.singleton.CurrentStage.Stage != EXStage.World)
			{
				Shader.SetGlobalFloat("_windSpeed", Mathf.Sin(XQualitySetting._WindSpeedFactor * Time.realtimeSinceStartup));
			}
			Transform cameraTrans = XSingleton<XScene>.singleton.GameCamera.CameraTrans;
			if (cameraTrans != null)
			{
				Shader.SetGlobalVector("cameraPos", cameraTrans.position);
			}
		}

		// Token: 0x040057A8 RID: 22440
		private static XQualitySetting.XSetting[] _settings = new XQualitySetting.XSetting[]
		{
			new XQualitySetting.XSetting(),
			new XQualitySetting.XSetting(),
			new XQualitySetting.XSetting(),
			new XQualitySetting.XSetting()
		};

		// Token: 0x040057A9 RID: 22441
		private static float[] _hallLayerculldistance = new float[32];

		// Token: 0x040057AA RID: 22442
		private static float[] _layerculldistance = new float[32];

		// Token: 0x040057AB RID: 22443
		public static Light mainLight = null;

		// Token: 0x040057AC RID: 22444
		public static IFxPro fxPro = null;

		// Token: 0x040057AD RID: 22445
		public static int VisibleRoleCountPerLevel = 5;

		// Token: 0x040057AE RID: 22446
		private static int _VisibleRoleCount = 20;

		// Token: 0x040057AF RID: 22447
		private static int _QualityLevel = -1;

		// Token: 0x040057B0 RID: 22448
		private static int _HardwareQualityLevel = -1;

		// Token: 0x040057B1 RID: 22449
		private static bool _IsPcOrSimulator = false;

		// Token: 0x040057B2 RID: 22450
		private static XQualitySetting.XSetting _CurrentSetting = null;

		// Token: 0x040057B3 RID: 22451
		public static bool _InHall = false;

		// Token: 0x040057B4 RID: 22452
		public static bool _CastShadow = false;

		// Token: 0x040057B5 RID: 22453
		public static float _FadeDistance = 81f;

		// Token: 0x040057B6 RID: 22454
		private static int _flag = 0;

		// Token: 0x040057B7 RID: 22455
		private static IEnvSetting _envSet;

		// Token: 0x040057B8 RID: 22456
		public static int width = 1136;

		// Token: 0x040057B9 RID: 22457
		public static int height = 640;

		// Token: 0x040057BA RID: 22458
		public static float maxResolution = 640f;

		// Token: 0x040057BB RID: 22459
		public static int _InvisiblityLayerOffset = 0;

		// Token: 0x040057BC RID: 22460
		public static int _QualityHighLayerOffset = 0;

		// Token: 0x040057BD RID: 22461
		public static int _QualityNormalLayerOffset = 0;

		// Token: 0x040057BE RID: 22462
		public static int _UILayerOffset = 0;

		// Token: 0x040057BF RID: 22463
		public static int _DefaultLayerOffset = 0;

		// Token: 0x040057C0 RID: 22464
		public static int InVisiblityLayer = 31;

		// Token: 0x040057C1 RID: 22465
		public static int UILayer = 5;

		// Token: 0x040057C2 RID: 22466
		public static int TerrainLayer = 9;

		// Token: 0x040057C3 RID: 22467
		public static float _WindSpeedFactor = 1f;

		// Token: 0x040057C4 RID: 22468
		public static int lowLevel = XFastEnumIntEqualityComparer<XQualitySetting.ESetting>.ToInt(XQualitySetting.ESetting.ELow);

		// Token: 0x040057C5 RID: 22469
		public static int normalLevel = XFastEnumIntEqualityComparer<XQualitySetting.ESetting>.ToInt(XQualitySetting.ESetting.ENormal);

		// Token: 0x040057C6 RID: 22470
		public static int heighLevel = XFastEnumIntEqualityComparer<XQualitySetting.ESetting>.ToInt(XQualitySetting.ESetting.EHeigh);

		// Token: 0x040057C7 RID: 22471
		public static int veryHighLevel = XQualitySetting.heighLevel + 1;

		// Token: 0x040057C8 RID: 22472
		public static int numLevel = XFastEnumIntEqualityComparer<XQualitySetting.ESetting>.ToInt(XQualitySetting.ESetting.ENum);

		// Token: 0x040057C9 RID: 22473
		public static int lowResolution = XFastEnumIntEqualityComparer<XQualitySetting.EResolution>.ToInt(XQualitySetting.EResolution.ELow);

		// Token: 0x040057CA RID: 22474
		public static int normalResolution = XFastEnumIntEqualityComparer<XQualitySetting.EResolution>.ToInt(XQualitySetting.EResolution.ENormal);

		// Token: 0x040057CB RID: 22475
		public static int heighResolution = XFastEnumIntEqualityComparer<XQualitySetting.EResolution>.ToInt(XQualitySetting.EResolution.EHeigh);

		// Token: 0x020019D2 RID: 6610
		public enum ESetting
		{
			// Token: 0x0400800A RID: 32778
			ELow,
			// Token: 0x0400800B RID: 32779
			ENormal,
			// Token: 0x0400800C RID: 32780
			EHeigh,
			// Token: 0x0400800D RID: 32781
			EVeryHeigh,
			// Token: 0x0400800E RID: 32782
			ENum
		}

		// Token: 0x020019D3 RID: 6611
		public enum EResolution
		{
			// Token: 0x04008010 RID: 32784
			ELow,
			// Token: 0x04008011 RID: 32785
			ENormal,
			// Token: 0x04008012 RID: 32786
			EHeigh,
			// Token: 0x04008013 RID: 32787
			ENum
		}

		// Token: 0x020019D4 RID: 6612
		public class XSetting
		{
			// Token: 0x04008014 RID: 32788
			public bool _bloom = false;

			// Token: 0x04008015 RID: 32789
			public float _CameraHall = 130f;

			// Token: 0x04008016 RID: 32790
			public float _CameraWorld = 80f;

			// Token: 0x04008017 RID: 32791
			public BlendWeights bw = (BlendWeights)1;

			// Token: 0x04008018 RID: 32792
			public int _CullMask = -1;

			// Token: 0x04008019 RID: 32793
			public bool _EnableFog = true;

			// Token: 0x0400801A RID: 32794
			public int _ShaderLod = 600;

			// Token: 0x0400801B RID: 32795
			public int _MaxParticelCount = 10;
		}
	}
}
